package org.skywork.entitys.basic;

// *************************************************************************/
// Charada Soft
// Area de Desarrollo de Sistemas de Información
// *************************************************************************/
// Proyecto : SkyWork Entitys
// Archivo : Persona.java
// Descripcion : Clase Persona
// *************************************************************************/
// Version : 2.11.8
// Fecha de Creación: 29 de Diciembre de 2014
// Author : Daniel Andres Castillo Pedroza
// *************************************************************************/

import org.skywork.entitys.basic.dto.IDTO;
import org.skywork.entitys.basic.dto.PersonaDTO;
import org.skywork.entitys.system.SkyWorkConstants;

public class Persona extends Entidad implements IDTO <PersonaDTO> {
    
    // Atributos de la clase Persona
    
    private final String cedula;
    private String expedicion;
    private String nombres;
    private String primerApellido;
    private String segundoApellido;
    private String direccion;
    private String barrio;
    private String celular;
    private String correo;
    
    // Constructores de la clase Persona
    
    public Persona(String cedula) {
        this.cedula = cedula;
    }

    public void setExpedicion(String expedicion) {
        this.expedicion = expedicion;
    }

    public void setNombres(String nombre) {
        this.nombres = nombre;
    }

    public void setPrimerApellido(String primerApellido) {
        this.primerApellido = primerApellido;
    }

    public void setSegundoApellido(String segundoApellido) {
        this.segundoApellido = segundoApellido;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public void setBarrio(String barrio) {
        this.barrio = barrio;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public String getExpedicion() {
        return expedicion;
    }

    public String getNombres() {
        return nombres;
    }

    public String getPrimerApellido() {
        return primerApellido;
    }

    public String getSegundoApellido() {
        return segundoApellido;
    }

    public String getDireccion() {
        return direccion;
    }

    public String getBarrio() {
        return barrio;
    }

    public String getCelular() {
        return celular;
    }

    public String getCorreo() {
        return correo;
    }
    
    // Metodos de la clase Persona

    @Override
    public String getIdentificacion() {
        return cedula;
    }

    @Override
    public String getTipoEntidad() {
        return SkyWorkConstants.PERSONA;
    }

    @Override
    public String getNombreEntidad() {
        return nombres + " " + primerApellido + " " + segundoApellido;
    }
    
    @Override
    public void setDatos(PersonaDTO personaDTO) {
        setExpedicion(personaDTO.getExpedicion());
        setNombres(personaDTO.getNombres());
        setPrimerApellido(personaDTO.getPrimerApellido());
        setSegundoApellido(personaDTO.getSegundoApellido());
        setDireccion(personaDTO.getDireccion());
        setBarrio(personaDTO.getBarrio());
        setCelular(personaDTO.getCelular());
        setCorreo(personaDTO.getCorreo());
    }
    
    @Override
    public PersonaDTO getDatos() {
        // Instanciando objeto para contener los Datos
        PersonaDTO personaDTO = new PersonaDTO();
        
        // Cargando los datos en el objeto
        personaDTO.setExpedicion(getExpedicion());
        personaDTO.setNombres(getNombres());
        personaDTO.setPrimerApellido(getPrimerApellido());
        personaDTO.setSegundoApellido(getSegundoApellido());
        personaDTO.setDireccion(getDireccion());
        personaDTO.setBarrio(getBarrio());
        personaDTO.setCelular(getCelular());
        personaDTO.setCorreo(getCorreo());
        
        return personaDTO; // Retornando datos de la Persona
    }
}